Autonomous messaging systems, also referred to as chatbots, have grown in popularity in recent years. The capabilities and programmed behaviours of different chatbots vary depending on their intended audience—chatbots intended for entertainment purposes may employ different language processing and response algorithms than those intended to respond to customer service messages or complete Turing Tests. In general, however, chatbots can be configured to recognize various characteristics of messages they receive, and to respond to those messages differently depending on which characteristics were recognized in the received messages.
One of the challenges in configuring chatbot applications involves determining which response to select for an incoming message (e.g. from a human user). For a certain set of characteristics recognized by the chatbot in the message, for example defining a topic (e.g. the weather), there may be a large set of possible responses. Certain ones of those responses may be more appropriate than others, but accurately identifying an appropriate one of a set of responses (as opposed to simply selecting one of the set of responses at random) may be either infeasible for current chatbots, or may impose a substantial computational burden.